\select@language {brazil}
\contentsline {chapter}{\numberline {1}Introdu\IeC {\c c}\IeC {\~a}o}{15}
\contentsline {section}{\numberline {1.1}Organiza\IeC {\c c}\IeC {\~a}o do documento}{17}
\contentsline {chapter}{\numberline {2}Sistemas Embarcados}{18}
\contentsline {section}{\numberline {2.1}Restri\IeC {\c c}\IeC {\~o}es}{21}
\contentsline {subsection}{\numberline {2.1.1}Influ\IeC {\^e}ncia do mercado}{22}
\contentsline {section}{\numberline {2.2}Software para Sistemas Embarcados}{24}
\contentsline {subsection}{\numberline {2.2.1}Processos de compila\IeC {\c c}\IeC {\~a}o e evolu\IeC {\c c}\IeC {\~a}o do software}{26}
\contentsline {subsection}{\numberline {2.2.2}Arquiteturas Comuns}{29}
\contentsline {chapter}{\numberline {3}RISCO}{30}
\contentsline {section}{\numberline {3.1}Detalhes do projeto}{31}
\contentsline {section}{\numberline {3.2}Conjunto de instru\IeC {\c c}\IeC {\~o}es}{33}
\contentsline {section}{\numberline {3.3}Plataforma de desenvolvimento}{37}
\contentsline {subsection}{\numberline {3.3.1}Ferramentas}{38}
\contentsline {chapter}{\numberline {4}Plataforma base de desenvolvimento}{39}
\contentsline {section}{\numberline {4.1}Montador}{40}
\contentsline {subsection}{\numberline {4.1.1}Linguagem de montagem do RISCO}{42}
\contentsline {subsubsection}{Elementos l\IeC {\'e}xicos}{42}
\contentsline {subsubsection}{Gram\IeC {\'a}tica e Sem\IeC {\^a}ntica da linguagem}{43}
\contentsline {subsection}{\numberline {4.1.2}Funcionalidade do ligador}{46}
\contentsline {section}{\numberline {4.2}Simulador}{48}
\contentsline {subsection}{\numberline {4.2.1}Formato do execut\IeC {\'a}vel}{50}
\contentsline {subsection}{\numberline {4.2.2}Chamadas de sistema}{51}
\contentsline {chapter}{\numberline {5}A infraestrutura de compiladores LLVM}{54}
\contentsline {section}{\numberline {5.1}Arquitetura}{56}
\contentsline {section}{\numberline {5.2}Representa\IeC {\c c}\IeC {\~a}o Intermedi\IeC {\'a}ria}{57}
\contentsline {section}{\numberline {5.3}Framework para gera\IeC {\c c}\IeC {\~a}o de c\IeC {\'o}digo}{60}
\contentsline {subsection}{\numberline {5.3.1}Descri\IeC {\c c}\IeC {\~a}o do alvo}{62}
\contentsline {subsection}{\numberline {5.3.2}Sele\IeC {\c c}\IeC {\~a}o de Instru\IeC {\c c}\IeC {\~o}es}{63}
\contentsline {subsection}{\numberline {5.3.3}Emiss\IeC {\~a}o de c\IeC {\'o}digo}{65}
\contentsline {chapter}{\numberline {6}M\IeC {\'o}dulo RISCO para o LLVM}{66}
\contentsline {section}{\numberline {6.1}Decis\IeC {\~o}es de projeto}{67}
\contentsline {subsection}{\numberline {6.1.1}Suporte \IeC {\`a}s funcionalidades da LLVM-IR}{68}
\contentsline {subsection}{\numberline {6.1.2}Interface bin\IeC {\'a}ria}{69}
\contentsline {section}{\numberline {6.2}Especifica\IeC {\c c}\IeC {\~a}o do backend}{72}
\contentsline {subsection}{\numberline {6.2.1}TargetMachine}{73}
\contentsline {subsection}{\numberline {6.2.2}RegisterInfo e CallingConv}{73}
\contentsline {subsection}{\numberline {6.2.3}TargetLowering}{74}
\contentsline {subsection}{\numberline {6.2.4}InstrInfo}{75}
\contentsline {subsection}{\numberline {6.2.5}MCAsmInfo}{78}
\contentsline {section}{\numberline {6.3}Verifica\IeC {\c c}\IeC {\~a}o do compilador}{79}
\contentsline {chapter}{\numberline {7}An\IeC {\'a}lise de c\IeC {\'o}digo RISCO}{82}
\contentsline {section}{\numberline {7.1}Densidade do c\IeC {\'o}digo}{82}
\contentsline {section}{\numberline {7.2}Tempo de Execu\IeC {\c c}\IeC {\~a}o no Pior Caso}{85}
\contentsline {subsection}{\numberline {7.2.1}Grafo de Controle de Fluxo}{86}
\contentsline {subsection}{\numberline {7.2.2}RISCO-CFG}{88}
\contentsline {chapter}{\numberline {8}Considera\IeC {\c c}\IeC {\~o}es finais}{93}
\contentsline {chapter}{Refer\^encias}{94}
\contentsline {chapter}{Ap\^endice{} A{} -$\tmspace -\thinmuskip {.1667em}$-{} Conjunto completo de instru\IeC {\c c}\IeC {\~o}es do RISCO}{99}
\contentsline {section}{\numberline {A.1}Instru\IeC {\c c}\IeC {\~o}es aritm\IeC {\'e}tico-l\IeC {\'o}gicas}{99}
\contentsline {section}{\numberline {A.2}Instru\IeC {\c c}\IeC {\~o}es de acesso \IeC {\`a} mem\IeC {\'o}ria}{99}
\contentsline {section}{\numberline {A.3}Instru\IeC {\c c}\IeC {\~o}es de salto}{99}
\contentsline {section}{\numberline {A.4}Instru\IeC {\c c}\IeC {\~o}es de chamada de sub-rotina}{101}
